package db.daos;

import Conexao.Conexao;
import db.beans.TipoUsuario;
import db.beans.Usuario;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

/**
 *
 * @author Denis
 */
public class UsuarioDao {
     public static int inserirUsuario(Usuario usuario){
        int res=0;
        Conexao con = Conexao.getInstancia();
        
       String query = "INSERT INTO usuario (nome,email,senha,idTipoUsuario) VALUES (?,?,?,?)";
       con.prepararAI(query);
		try {
                    con.getPs().setString(1,usuario.getNome());
                    con.getPs().setString(2,usuario.getEmail());
                    con.getPs().setString(3,usuario.getSenha());
                    con.getPs().setInt(4,usuario.getTipo().getTipo());
                    if(con.executeUpdate()){
                        res=con.getAutoIncrement();
                    }
   		
                } catch (SQLException e) {
			e.printStackTrace();
		} finally {
			return(res);
		}
    }
     public static ArrayList<Usuario> Login(String email,String senha){    
		 
                ArrayList<Usuario> res = new ArrayList<Usuario>();
		
                Conexao con = Conexao.getInstancia();
		String query = "SELECT email,senha FROM usuario WHERE email=? && Senha=?";
               
                con.preparar(query);
		try {
                    con.getPs().setString(1,email);
                    con.getPs().setString(2,senha);
                    ResultSet rs = con.executeQuery();
			
                        while (rs.next())
			{
				Usuario aux = new Usuario();
				aux.setEmail(rs.getString("email"));
				aux.setSenha(rs.getString("Senha"));
        
				res.add(aux);
			}
		} catch (SQLException e) {
			
			e.printStackTrace();
		} finally {
			return(res);
		}
    }
    public static ArrayList<Usuario> buscarDados(){
		ArrayList<Usuario> res = new ArrayList<Usuario>();
		Conexao con = Conexao.getInstancia();
		String query = "SELECT id,nome,email,idTipoUsuario FROM usuario";
                con.preparar(query);
		
		try {
                    ResultSet rs = con.executeQuery();
			while (rs.next())
			{
                                TipoUsuario aux1 = new TipoUsuario();
				Usuario aux = new Usuario();
                                
                                aux.setIdUsuario(rs.getInt("id"));
				aux.setNome(rs.getString("nome"));
                                aux.setEmail(rs.getString("email"));
                                aux1.setTipo(rs.getInt("idTipoUsuario"));
                                aux.setTipo(aux1);
				res.add(aux);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			return(res);
		}
    }
      public static boolean delete(String id){
		boolean res = false;
		Conexao con = Conexao.getInstancia();
                
		String query = "DELETE FROM usuario WHERE id=?";
		
		con.preparar(query);
		try {
                        con.getPs().setString(1,id);
			res = con.executeUpdate();
                        
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			return(res);
		}
	}
}